package com.nowcoder.community.dao;

import com.nowcoder.community.entity.Message;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

@Mapper
public interface MessageMapper {

    // 查询当前用户的会话列表，只返回最新的一条消息
    List<Message> selectConversation(int userId,int offset,int limit);

    // 查询当前用户的会话数量
    int selectConversationCount(int userId);

    // 查询会话包含的私信列表
    List<Message> selectLetters(String conversationId,int offset,int limit);

    // 查询会话包含的私信数量
    int selectLetterCount(String conversationId);

    /**
     * 查询未读消息数量
     * ConversationId==null时,查询所有未读消息数量
     * @param userId
     * @param conversationId
     * @return
     */
    int selectLetterUnreadCount(int userId,String conversationId);

    // 新增一个消息
    int insertMessage(Message message);

    // 修改消息状态
    int updateStatus(List<Integer> ids,int status);

    //查询主题下的最新通知
    Message selectLatestNotice(int userId,String topic);

    //查询主题下的通知数量
    int selectNoticeCount(int userId,String topic);

    /**
     * 查询某一主题下的未读通知数量
     * topic==null时查询所有主题未读数量
     * @param userId
     * @param topic
     * @return
     */
    int selectNoticeUnreadCount(int userId, String topic);

    /**
     * 分页查询用户某一主题下的通知
     * @param userId
     * @param topic
     * @param offset
     * @param limit
     * @return
     */
    List<Message> selectNotices(int userId,String topic,int offset,int limit);



}
